<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        // var arr=["hello",4,5,6,"world"]
        // console.log(arr)
        // var res=arr.indexOf("world");
        // console.log(res);

        // // 功能：根据数据，查索引 
        // // 参数：要查询的数据    (输入的必须是数组中的数据，否则输出-1)
        // // 返回值：索引
        // // 是否改变原数据：否

        // var arr=["hello",4,5,6,"world"]
        // console.log(arr)
        // var res = arr.forEach(function(val, idx, self){
        //     console.log(self);
        // })
        // console.log(res);           //返回值

        // 功能：遍历数组
        // 参数：函数，这个函数又有三个形参
            // 形参1：数组中的数据
            // 形参2；索引
            // 形参3；数组本身

        // var arr=["hello",4,5,6,"world"]

        // var res = arr.filter(function(val,idx,self){
        // console.log(self)
        //     return typeof val === "number";     //返回值
        // })
        // console.log(res)            //返回的是一个数组
        
        // 功能：遍历数组，并过滤数组中的数据
        // 参数：回调函数，这个函数又有三个形参
        // 形参1：数组中的数据
        // 形参2：索引
        // 形参3：数组自身
        // 返回值：新数组，内的数据是每次回调函数的返回值为true时，遍历到的数据
        // 是否改变原数据：否


        // arr.some()
        var arr=["hello",4,5,6,"world"]
        var res = arr.some(function(val,idx,self){
            console.log(val)
            console.log(idx);
            console.log(self);
            return val === 4;
        })
        console.log(res)

        // 功能：遍历函数
        // 参数：函数，这个函数又有三个参数
        //     参数1：数组中的数据  （必选）
        //     参数2：索引      (当前索引的值)（可选）
        //     参数3：数组自身      （可选）
        // 返回值：布尔值，只要回调函数返回一个true，就是true、
        // 是否改变原数组：否



        // arr.every()
        // var arr=["hello",4,5,6,"world"]
        // var res=arr.every(function(val,idx,self){
        //     return typeof val===Number;
        // })
        // console.log(arr);
        // console.log(res);

        // 功能：遍历数组
        // 参数：函数，这个函数又有三个形参
        //     形参1：数组中的数据
        //     形参2：索引
        //     形参3；数组自身
        // 返回值：布尔值，只有回调函数全部返回true，才是true


        // arr.reduce()
        // var arr=["hello",4,5,6,"world"]
        // var res=arr.reduce(function(start,val,idx,self){
        //     return start;
        // })
        // console.log(arr);
        // console.log(res);
        // 功能：遍历，归并
        // 参数：参数1：函数，这个函数有四个形参
        //              形参1：上一次回调函数的返回值
        //                  有初始值就是初始值
        //                  没有初始值就是数组的第一个数据
                    // 形参2：数组中的数据
                    // 形参3：索引
                    // 形参4：数组自身
            // 参数2：初始值，可以省略

    </script>
</html>